package org.dromara.oce.domain.bo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.oce.domain.OceAdvertiserReferralRelation;

import java.io.Serializable;
import java.util.Date;

/**
 * 推广链接-广告主关联业务对象 oce_advertiser_referral_relation
 *
 * @author Lion Li
 * @date 2024-12-24
 */
@Data
@EqualsAndHashCode()
@AutoMapper(target = OceAdvertiserReferralRelation.class, reverseConvertGenerate = false)
public class OceAdvertiserReferralRelationBo implements Serializable {

    /**
     * 广告主-推广链接关联id
     */
    @NotNull(message = "广告主-推广链接关联id不能为空", groups = { EditGroup.class })
    private Long advertiserReferralId;

    /**
     * 第三方广告主id
     */
    @NotBlank(message = "第三方广告主id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String thirdAdvertiserId;

    /**
     * 第三方广告主名称
     */
    @NotBlank(message = "第三方广告主名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String thirdAdvertiserName;

    /**
     * 巨量应用平台编码
     */
    private String thirdAdvertiserAppCode;

    /**
     * 推广链接id
     */
    @NotNull(message = "推广链接id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long referralLinkId;

    /**
     * 推广链接类型：1-袋鼠；2-番茄；3-点众；4-番茄IAA；5-袋鼠IAA；6-端原生IAP；7-端原生IAA；
     */
    @NotNull(message = "推广链接类型：1-袋鼠；2-番茄；3-点众；4-番茄IAA；5-袋鼠IAA；6-端原生IAP；7-端原生IAA；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer referralLinkType;

    /**
     * 应用类型：1-抖小；3-微小；
     */
    @NotNull(message = "应用类型：1-抖小；3-微小；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer appType;

    /**
     * 拉取启用状态：0-停用；1-启用；
     */
    @NotNull(message = "拉取启用状态：0-停用；1-启用；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer pullStatus;

    /**
     * 短剧id
     */
//    @NotNull(message = "短剧id不能为空", groups = { AddGroup.class, EditGroup.class })
//    private Long dramaId;

    /**
     * 短剧名称
     */
    @NotBlank(message = "短剧名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dramaTitle;

    /**
     * 投手名称
     */
    @NotBlank(message = "投手名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String createName;

    /**
     * 拉取数据结束时间
     */
//    @NotNull(message = "拉取数据结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date endTime;

    /**
     * 部门id
     */
//    @NotNull(message = "部门id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;

    /**
     * 开始时间
     */
    @JsonIgnore
    @TableField(exist = false)
    private String startDate;

    /**
     * 结束时间
     */
    @JsonIgnore
    @TableField(exist = false)
    private String endDate;


}
